#define _CRT_SECURE_NO_WARNINGS

//#include<iostream>
//#include<vector>
//using namespace std;
//
//vector<int> mat[10005];
//
//int main()
//{
//	int x, y, m, n;
//	cin >> n >> m;
//	for (int i = 0; i < m; i++)
//	{
//		cin >> x >> y;
//		mat[x].push_back(y);
//	}
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 0; j < mat[i].size(); j++)
//		{
//			cout << mat[i][j];
//			if (mat[i].size() - 1 != j)
//				cout << ' ';
//		}
//		cout << endl;
//	}
//	return 0;
//}

//#include<iostream>
//#include<set>
//using namespace std;
//
//struct People
//{
//	int h;
//	int w;
//	int age;
//	People(int H = 0, int W = 0, int Age = 0)
//	{
//		h = H;
//		w = W;
//		age = Age;
//	}
//	bool operator<(const People& rhs)const
//	{
//		if (rhs.h != h)
//			return rhs.h < h;
//		if (rhs.w != w)
//			return rhs.w < w;
//		return rhs.age < age;
//	}
//};
//
//set<People> s;
//
//
//int main()
//{
//	int n, m, h, w, age;
//	cin >> n >> m;
//	for (int i = 0; i < n; i++)
//	{
//		cin >> h >> w >> age;
//		//People person(h, w, age);
//		//s.insert(person);
//		s.insert(People(h, w, age));
//	}
//	for (int i = 0; i < m; i++)
//	{
//		cin >> h >> w >> age;
//		People person(h, w, age);
//		if (s.count(person))
//			cout << "YES" << endl;
//		else
//			cout << "NO" << endl;
//	}
//	return 0;
//}

//#include<iostream>
//#include<map>
//#include<string>
//#include<cstdio>
//using namespace std;
//
//map<string, int> s;
//char str[105] = { 0 };
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	for (int i = 0; i < n; i++)
//	{
//		//string str;
//		scanf("%s", str);
//		s[str]++;
//	}
//	printf("%d\n", s.size());
//	for (map<string, int>::iterator it = s.begin(); it != s.end(); it++)
//	{
//		printf("%s %d\n", it->first.c_str(), it->second);
//	}
//	return 0;
//}

//#include<iostream>
//#include<vector>
//#include<cstdio>
//using namespace std;
//
//vector<int> arr[10005];
//
//int main()
//{
//	int n, m, a, b;
//	scanf("%d %d", &n, &m);
//	for (int i = 1; i <= n; i++)
//	{
//		arr[i].push_back(i);
//	}
//	for (int i = 0; i < m; i++)
//	{
//		scanf("%d %d", &a, &b);
//		if (a != b)
//		{
//			for (int j = 0; j < arr[b].size(); j++)
//			{
//				arr[a].push_back(arr[b][j]);
//			}
//			vector<int>().swap(arr[b]);
//		}
//	}
//	for (int i = 1; i <= n; i++)
//	{
//		for (int j = 0; j < arr[i].size(); j++)
//		{
//			printf("%d", arr[i][j]);
//			if (arr[i].size() - 1 != j)
//				printf(" ");
//		}
//		if (n != i)
//			printf("\n");
//	}
//	return 0;
//}

//#include<iostream>
//#include<set>
//#include<cstdio>
//using namespace std;
//
//set<int> s;
//
//int main()
//{
//	int n, m, x;
//	scanf("%d %d", &n, &m);
//	for (int i = 0; i < n + m; i++)
//	{
//		scanf("%d", &x);
//		s.insert(x);
//	}
//	int count = 0;
//	for (set<int>::iterator it = s.begin(); it != s.end(); it++)
//	{
//		printf("%d", *it);
//		count++;
//		if (count != s.size())
//			printf(" ");
//	}
//	return 0;
//}

#include<iostream>
#include<set>
#include<cstdio>
using namespace std;

set<string> s;
int main()
{
	int n = 0, mode = 0;
	char str[25] = { 0 };
	scanf("%d", &n);
	for (int i = 0; i < n; i++)
	{
		scanf("%d %s", &mode, str);
		if (0 == mode)
			s.insert(str);
		else if (1 == mode)
		{
			if (s.count(str))
				printf("Yes\n");
			else
				printf("No\n");

		}
	}
	return 0;
}